Learning Agile Soccer Skills for a Bipedal Robot with Deep Reinforcement Learning | arXiv (2023)
Tuomas Haarnoja, Ben Moran, Guy Lever, Sandy H. Huang, Dhruva Tirumala, Markus Wulfmeier, Jan Humplik, Saran Tunyasuvunakool, Noah Y. Siegel, Roland Hafner, Michael Bloesch, Kristian Hartikainen, Arunkumar Byravan, Leonard Hasenclever, Yuval Tassa, Fereshteh Sadeghi, Nathan Batchelor, Federico Casarini, Stefano Saliceti, Charles Game, Neil Sreendra, Kushal Patel, Marlon Gwira, Andrea Huber, Nicole Hurley, Francesco Nori, Raia Hadsell, Nicolas Heess
hl.icon
Deepmindが開発したサッカーをするロボットについて
https://www.youtube.com/watch?v=KRm17Pc2nZc
目的(Primary Objectives):
動物のように実環境を理解し、それに応じた器用かつ柔軟な振る舞いが出来るエージェントの作成
動物は単に複雑な行動を行うだけでなく、外環境を理解し目的に応じた適切な行動を取ることが出来る
先行研究で出来ていたこと:
複雑な物理的動作や制約を直接モデル化するのではなく、タスクや目的に直接焦点を当てて最適化を行う
ロボットはさまざまな状況に適応し、長期的で複雑な行動を学習する能力を持つようになる
https://www.youtube.com/watch?v=hx_bgoTF7bs
4つ足ロボットを不規則な地形や予期しない障害物に対しても効果的に対応できるように学習
https://www.youtube.com/watch?v=aTDkYFZFWug
問題点:
移動という行動は数多くある行動の中の1つに過ぎない
物理環境におけるロボット研究は4足歩行ロボットが多いが、これは元々安定性が高い
人間のように2足歩行を行うロボットを作る場合、安定性がさらなる問題となる
以下の2つは以前として困難
複雑で長期的かつ多技能を持つ行動をロボットに創出させること
それをさまざまな環境文脈に適応させ、現実のロボットで安全に実行すること
異なる衝突する目的間でバランスを取らなくてはならない
性能と安全性のバランスとか
適切な報酬を設計しなくてはならない
サッカー(1 vs 1)が出来るヒト型ロボットを作れるのか?
相手から自分のゴールを守りつつ、相手のゴールにボールを入れる必要がある
様々な複雑な行動を、状況に応じて適切に実行できなければ勝てない
走る、蹴るというシンプルな行動から、ボールの軌道を予測したディフェンスといった長期的な行動まで
目的(Specific Objectives):
サッカーに必要な広範なスキルを長期的な戦略的行動に組み合わせて行動するロボットをトレーニングすること
さらに、この能力(機能)を実際のロボットに転送できるようにすること(sim-to-real transfer)
しかし、単純なスパースな報酬のみでトレーニングされた場合、上の条件を満たす行動が現れない
問題点:
deepRLで一般的な問題点
探索(Exploration):
スパース報酬では、エージェントが報酬を得るチャンスが少ないため、どのような行動が良い結果につながるのかを探索するのが困難
転移可能な行動の学習(Learning Transferable Behaviors):
行動がシミュレーション環境に最適化され、これが実世界のロボットにうまく転移しない可能性
解決策
シミュレーション空間でエージェントをトレーニングした後、実環境で動くロボットにポリシーを移す
Step1: 教師ポリシーのトレーニング
Step2: Step1でトレーニングした教師ポリシーを用いてエージェントをトレーニング
セットアップについて
https://scrapbox.io/files/6561aa883ea901001b6a2c26.png
エージェントは自由度20のヒト型ロボット
シミュレーションと実環境のロボットは動かせる関節が対応している
$ u_t = 0.8 u_{t-1} + 0.2 a_t
$ u: フィルター処理された制御入力
$ a: ポリシーによって出力されるアクション
このフィルターされた入力をPID controllerを通して関節の制御を行う
Naa_tsure.iconPしか使ってないっぽい
エージェントが与えられる情報は以下の通り
https://scrapbox.io/files/6562e4a23ea901001b73f24e.png
相手、ボール、ゴールの自分との相対位置は常に与えられている
Naa_tsure.iconセンサーから推測を行っているわけではない
Naa_tsure.iconエージェントは40Hzで動くので125msぶんの情報は保持しているということ(?)
トレーニング
サッカーをプレイするのに必要な様々なスキルを学ばせたい
https://scrapbox.io/files/6562f4307f4dc3001c1ae248.png
Step1: 教師ポリシーのトレーニング
教師1: 転んだ状態から立ち上がる
https://scrapbox.io/files/6549b20f08c58d001bbcdec0.png
うつ伏せ、仰向けに倒れた状態から立ち上がるために鍵となるポーズをそれぞれ3つ与えてトレーニング
教師2: トレーニングされていない相手に対してゴールを決める
Step2: Step1でトレーニングした教師ポリシーを用いてエージェントをトレーニング
1v1でサッカーのトレーニングをしながら、教師との確率分布を近づけるようにトレーニングする
倒れている時は、起き上がり用の教師のポリシーに近づける
起き上がっている時は、サッカー用の教師のポリシーに近づける
さらにself-playによって段々と強くなる相手に対してゴールを決める
結果
トレーニング時間
立ち上がり教師:16時間
サッカー教師:158時間
distillation and self-play:68時間